package xfuzzy.alg_genetico.indeterminado.xfghlOld.model.spec;


//import java.io.File;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Hashtable;
import java.util.Random;

//import sun.misc.BASE64Encoder;

//import xfuzzy.lang.Specification;
//import xfuzzy.lang.XflException;

//import xfuzzy.xfghl.model.XfghlConfig;
//import xfuzzy.xfghl.model.hierStruct.XfghlHierStruct;

public class Prueba {

	/**
	 * @param args
	 */
	@SuppressWarnings("unused")
	public static void main(String[] args) {
		// Auto-generated method stub

		/*INodo a=new Nodo(1);
		INodo b=new Nodo(2);
		INodo c=new Nodo(3);

		INodo m1=new Modulo(a,b,c,1);
		
		INodo d=new Nodo(4);
		INodo e=new Nodo(5);
		
		INodo m2=new Modulo(m1,d,e,2);
		
		//Nos creamos la primera estructura que tiene 3 variables y 1 modulo
		EstrJerar estrJer1=new EstrJerar(m1,3,1);
		//Nos creamos la primera estructura que tiene 5 variables y 2 modulo
		EstrJerar estrJer2=new EstrJerar(m2,5,2);
		
	    ArrayList<EstrJerar> adjacentes=estrJer2.Iterador();
	    
	    System.out.println("Original, numVar: "+estrJer2.getNumVar()+", numModulos: "+estrJer2.getNumModulos());
	    estrJer2.getM().imprime();
	    
		for (EstrJerar estrJerar : adjacentes) {
			System.out.println("Estructura, numVar: "+estrJerar.getNumVar()+", numModulos: "+estrJerar.getNumModulos());			
			estrJerar.getM().imprime();
		}
		System.out.println("Hay "+adjacentes.toArray().length+" en el proximo nivel");*/
		
		
		
		
		// DEPURACI�N CON N�MERO DE ENTRADAS
	/*	int numEntradas=6;
		ArrayList<EstrJerar> lista=EstrJerar.dameEstructuras(numEntradas);
		
		for (EstrJerar e : lista) {
			System.out.println("Estructura, numVar: "+e.getNumVar()+", numModulos: "+e.getNumModulos());			
			e.getM().imprime();
		}
		
		System.out.println("Hay "+lista.toArray().length+" estructuras con "+numEntradas+" entradas.");
		
		*/
		
		/*DEPURACI�N CON 5 VARIABLES
		INodo a=new Nodo(1);
		INodo b=new Nodo(2);
		INodo c=new Nodo(3);

		INodo m1=new Modulo(a,b,c,1);
		
		INodo d=new Nodo(4);
		INodo e=new Nodo(5);
		
		INodo m2=new Modulo(d,m1,e,2);
		
		//Nos creamos la primera estructura que tiene 3 variables y 1 m�dulo
	//	EstrJerar estrJer1=new EstrJerar(m1,3,1);
		
		//Nos creamos la primera estructura que tiene 5 variables y 2 m�dulo
		EstrJerar estrJer2=new EstrJerar(m2,5,2);
		
		ArrayList<EstrJerar> lista=estrJer2.Iterador();
		
		int i=0;
		
		for (EstrJerar es : lista) {
			i++;
			System.out.println("");
			System.out.print("    Estructura"+i);
			es.getM().imprime();
		}		*/
	
		
/*		//PRUEBA ITERADORN		
		INodo a=new Nodo(1);
		INodo b=new Nodo(2);
		INodo c=new Nodo(3);

		INodo m1=new Modulo(a,b,c,1);
		
		//Nos creamos la primera estructura que tiene 3 variables y 1 m�dulo
		EstrJerar e1=new EstrJerar(m1,3,1);
		EstrJerar aux;
		
		
		int i=1;
		
		while((aux=e1.IteradorN())!=null)
		{
			System.out.println("Estructura "+i);
			i++;
			aux.getM().imprime();
		}
		
		
		*/
		//PRUEBA DAMEESTRUCTURAN

		//XfghlHierStruct.setNumVarEnt(3);
		//XfghlHierStruct aux=new XfghlHierStruct();
		
		//int i=0;
		
		//aux=XfghlHierStruct.dameEstructura();
		
		/*while((aux=EstrJerar.dameEstructura())!=null)
		{			
			i++;
			aux.getM().imprime();
		}*/
		
		/*aux.getM().imprime();
		
		Specification specif=null;
		
		try {
			
			specif= XfghlSpecification.create(aux);			
			System.out.println(specif.toXfl());
			
		} catch (XflException e) {
			// Auto-generated catch block
			e.printStackTrace();
		}
	//	xfuzzy.xfedit.Xfedit.showSystemEditor(null, specif);
		
		Xfedit xfedit=null;
		xfuzzy.xfedit.XfeditStructure xeditStru=new XfeditStructure(xfedit,specif.getSystemModule());
		xeditStru.setVisible(true);
		//xeditStru.repaint();
		
		
		OperatingSystemMXBean  mxbean;
					   
		mxbean= ManagementFactory.getOperatingSystemMXBean();
		
		System.out.println("El n�mero de procesarodes es "+ mxbean.getAvailableProcessors());
		
		//System.out.println("Estructuras: "+i);
		 * 
		 */					
						
		/*
		 * File file=new File("C:\\Documents and Settings\\Sergio\\My Documents\\proyecto\\Xfuzzy 3.2 1-jul\\dist-src\\examples\\regression\\f1\\f3.dat");
		 
		
		FileInputStream fis=null;
		try {
			fis = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			// Auto-generated catch block
			e.printStackTrace();
		}
		XfdsParser parser = new XfdsParser(fis);
		XfdsDataSet ds = parser.parse();						
		
		System.out.println("hola "+ds.getName());
		
		XfdsAttribute [] atributos= ds.getAttributes();
		for (XfdsAttribute atribute : atributos) {
			System.out.println("Var: "+atribute.getName()+" ["+atribute.getUniverse().min()+" , "+atribute.getUniverse().max()+"]");			
		}*/
		
		//XfghlHierStruct.setNumVarEnt(3);
	/*	XfghlHierStruct aux=new XfghlHierStruct();
		File file=new File("C:\\Documents and Settings\\Sergio\\Desktop\\f2.dat");
				
		
		XfghlConfig conf=new XfghlConfig("Nombre",5,2,file,0.1,1.5,0.7,XfghlOperSet.AndOperatorProd,XfghlOperSet.DefuzOperatorFuzzyMean,XfghlInputType.FREE_TRIANGLES,3,0);
		
		
		//aux=XfghlHierStruct.dameEstructura();
		//aux=XfghlHierStruct.dameEstructura();
		//aux=XfghlHierStruct.dameEstructura();
		
		//aux.getM().imprime();
		
		Specification specif=null;
		
		try {
			
			specif= XfghlSpecification.create(aux,conf);			
			System.out.println(specif.toXfl());
			
		} catch (XflException e) {
			// Auto-generated catch block
			e.printStackTrace();
		}		*/
		
		try {
			String cad1="0123456123";
			
			String cad2="0123456121";
			
			MessageDigest md = MessageDigest.getInstance("MD2");
			md.update(cad1.getBytes());
			
			byte raw[] = md.digest(); // Obtenci�n del resumen de mensaje
			//String hash = (new BASE64Encoder()).encode(raw); // Traducci�n a BASE64
			
			
			md.update(cad2.getBytes());
			
			byte raw2[] = md.digest(); // Obtenci�n del resumen de mensaje
			//String hash2 = (new BASE64Encoder()).encode(raw2); // Traducci�n a BASE64

			
			//System.out.println(hash);
			//System.out.println(hash2);
			
			Hashtable<String, Object> hashTable=new Hashtable<String, Object>();
			//hashTable.put(hash, "hash");
			//System.out.println(hashTable.size());
			//hashTable.put(hash2, "hash2");
			//System.out.println(hashTable.size());
			
			
		} catch (NoSuchAlgorithmException e) {
			// Auto-generated catch block
			e.printStackTrace();
		}
		
		
		int seed=7;
		
		Random r=new Random(seed);
		System.out.println(r.nextInt(5));
		System.out.println(r.nextInt(5));
		System.out.println(r.nextInt(5));
		
		Random r2=new Random(seed);
		System.out.println(r2.nextInt(5));
		System.out.println(r2.nextInt(5));
		System.out.println(r2.nextInt(5));
	}			
}

